// store中间件（组件去操作的）
import axios from 'axios';


export default {
	// 状态属性，这里设置的变量，可以在组件里面调用到
	state:{
		newCate:[],
		newList:[],
		pn:1,
		cid:2,
		first:0,
		newDetail:{},		// 空的json对象
		newLike:0,
		like:0
	},
	// 这个是用来修改state里面的变量值
	mutations:{
		munewCate(state,data){
			state.newCate = data
		},
		munewList(state,data){
			// 追加数据
			if(state.first==0){	// 记录列表的第一条新闻的主键ID
				state.first = data[0]['news_id'];	// 只有第一次会赋值
			}
			state.newList = state.newList.concat(data)		// 传值给组件
		},
		munewEmpty(state){
			state.newList = []
		},
		mucate(state,data){
			state.cid = data
		},
		munewDetail(state,data){
			state.newDetail = data
		},
		muLike(state,data){
			state.like = data
		 }

	},
	// 可以包含任意异步操作,这里可以写异步请求（axios）
	actions:{
		acNewCate({commit,state}){
			// 异步请求 新闻分类
			axios({
				url:'/api/newCate',
				method:'get',
				data:''
			}).then(res=>{     // function(res){}
				console.log(res)
				commit('munewCate',res.data)
			})
		},
		acNewList({commit,state},cid){
			console.log(cid)
			let pn = state.pn;
			// 异步请求 新闻列表
			axios({
				url:`/api/newList/${cid}/${pn}`,
				method:'get',
				data:''
			}).then(res=>{     // function(res){}
				console.log(res)
				commit('munewList',res.data)
			})
		},
		// 改变页码的
		acPn({commit,state},pn){
			state.pn = pn;
		},
		// 新闻详情
		acNewDetail({commit,state},id){
			// alert(id)
			// 异步请求 新闻列表
			axios({
				url:`/api/newDetail/${id}`,
				method:'get',
				data:''
			}).then(res=>{     // function(res){}
				console.log(res)
				commit('munewDetail',res.data)
			})
		},
		// 新闻阅读量统计
		acRead({commit,state,dispatch},id){
			// 异步请求 新闻阅读量
			let that = this;
			axios({
				url:`/api/newRead/${id}`,
				method:'get',
				data:''
			}).then(res=>{     
				// function(res){}
				// 什么都不用做
				// dispatch('acNewList',state.cid)
			})
		},
		actLike({dispatch,state},id){
            axios({
                url:`/api/newLike/${id}/0`,
                method:'get',
                data:''
            }).then(res=>{
                state.newLike = res.data
                state.like==1?state.newLike++:state.newLike--;
                var like = state.newLike
                // console.log(like);       
                axios({
                    url:`/api/newLike/${id}/${like}`,
                    method:'get',
                    data:''
                }).then(res=>{})
            })
        }
	}
}